package UCH.JAVA.DAO;

import java.sql.*;
import UCH.JAVA.BEAN.*;
import java.util.*;
import UCH.JAVA.UTIL.*;
import UCH.JAVA.INTERFACES.*;

public class MysqlPersonaDAO implements PersonaDAO {

    Connection cn = null;
    PreparedStatement pt = null;
    ResultSet rs = null;
    ArrayList lista = null;
    PersonaBean objPersonaBean = null;
    UsuarioBean objUsuarioBean = null;

    public ArrayList ReportePersonas() {
        try {
            ConexionBD objC = new ConexionBD();
            cn = objC.getConexionBD();
            pt = cn.prepareStatement("select *  from  ad_usuario WHERE usu_activo=1");
            rs = pt.executeQuery();
            lista = new ArrayList();
            while (rs.next()) {

                objUsuarioBean = new UsuarioBean();
                objUsuarioBean.setUsu_id(rs.getInt(1));
                objUsuarioBean.setUsu_usuario(rs.getString(2));
                objUsuarioBean.setUsu_password(rs.getString(3));
                objUsuarioBean.setUsu_appaterno(rs.getString(4));
                objUsuarioBean.setUsu_apmaterno(rs.getString(5));
                objUsuarioBean.setUsu_nombre(rs.getString(6));
                objUsuarioBean.setRol_id(rs.getInt(7));

                lista.add(objUsuarioBean);

            }
            pt.close();
            rs.close();
            cn.close();


        } catch (Exception e) {
        }

        return lista;
    }

    public int EliminarRegistro(int codigo[]) {



        int i = 0;
        try {
            ConexionBD objC = new ConexionBD();
            cn = objC.getConexionBD();
            pt = cn.prepareStatement("UPDATE ad_usuario SET usu_activo=0 WHERE usu_id=?");

            for (int j = 0; j < codigo.length; j++) {
                pt.setInt(1, codigo[j]);
                i = pt.executeUpdate();
            }
            pt.close();
            cn.close();
        } catch (Exception e) {
            i = 0;
        }

        return i;
    }

    public PersonaBean buscarPersona(PersonaBean objPerso) {
        try {
            ConexionBD objC = new ConexionBD();
            cn = objC.getConexionBD();
            pt = cn.prepareStatement("select *   from  persona  where codigo=?");
            pt.setInt(1, objPerso.getCodigo());
            rs = pt.executeQuery();
            if (rs.next()) {
                objPersonaBean = new PersonaBean();
                objPersonaBean.setCodigo(rs.getInt(1));
                objPersonaBean.setNombre(rs.getString(2));
                objPersonaBean.setApellido(rs.getString(3));
                objPersonaBean.setEdad(rs.getInt(4));
                pt.close();
                rs.close();
                cn.close();
            }
        } catch (Exception e) {
        }
        return objPersonaBean;
    }

    public int ActualizarPersona(UsuarioBean objUsuarioBean) {
        int i = 0;
        try {
            ConexionBD objC = new ConexionBD();
            cn = objC.getConexionBD();
            pt = cn.prepareStatement("UPDATE ad_usuario SET usu_usuario=?, usu_password=?, usu_appaterno=?, "
                    + "usu_apmaterno=?, usu_nombre=?, area_id=? WHERE usu_id=?");

            pt.setString(1, objUsuarioBean.getUsu_usuario());
            pt.setString(2, objUsuarioBean.getUsu_password());
            pt.setString(3, objUsuarioBean.getUsu_appaterno());
            pt.setString(4, objUsuarioBean.getUsu_apmaterno());
            pt.setString(5, objUsuarioBean.getUsu_nombre());
            pt.setInt(6, objUsuarioBean.getRol_id());
            pt.setInt(7, objUsuarioBean.getUsu_id());


            i = pt.executeUpdate();
            pt.close();
            cn.close();
        } catch (Exception e) {
            i = 0;
        }

        return i;
    }

    public int GrabarPersona(UsuarioBean objintegrantesbeans) {
        int i = 0;
        try {
            ConexionBD objC = new ConexionBD();
            cn = objC.getConexionBD();
            pt = cn.prepareStatement("INSERT INTO ad_usuario(usu_usuario,usu_password,usu_appaterno,usu_apmaterno,usu_nombre,area_id,usu_activo) values(?,?,?,?,?,?,?)");
            pt.setString(1, objintegrantesbeans.getUsu_usuario());
            pt.setString(2, objintegrantesbeans.getUsu_password());
            pt.setString(3, objintegrantesbeans.getUsu_appaterno());
            pt.setString(4, objintegrantesbeans.getUsu_apmaterno());
            pt.setString(5, objintegrantesbeans.getUsu_nombre());
            pt.setInt(6, objintegrantesbeans.getRol_id());
            pt.setString(7, "1");
            i = pt.executeUpdate();
            cn.close();
            pt.close();
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getStackTrace());
            i = 0;

        }

        return i;
    }
}
